A virtual machine (VM) may be a software implementation of a physical machine (computer) that includes its own operating system (referred to as a guest operating system) and executes application programs. A host computer allocates a certain amount of its resources to each of the virtual machines, and multiplexes its underlying hardware platform among the virtual machines. Each virtual machine is then able to use the allocated resources to execute its guest operating system and applications. The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor, or part of a host operating system. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the computer. A host controller (e.g., a server) may manage (e.g., create/remove one or more virtual machines, shut down one or more virtual machines), monitor (e.g., monitor system resources used by hosts and/or virtual machines), configure (e.g., change hardware, software and/or guest operating systems on one or more virtual machines), and/or control the virtual machines.
Client devices (e.g., computing devices such as laptop computers, desktop computers, smart phones, tablet computers) may access the virtual machines. Each virtual machine may provide a virtual computing device for a client device. From the user's point of view, the virtual computing device may function as a physical computing device (e.g., a personal computer) and is indistinguishable from a physical computing device. The client devices may use a VM client to communicate, access, and/or use the different VMs. The VM client may provide a desktop environment (e.g., a virtual desktop environment) that may allow the user to use, access, and/or manage a VM. The desktop environment may be a graphical user interface that includes various graphical objects such as images, icons, graphics, text, background images, background colors, menus, graphical user interface elements (e.g., buttons, text fields, drop-down menus, etc.), bitmaps, regions, lines, splines, fonts, graphics, and/or other objects. Graphical objects may also be used to construct other graphical objects. For example, text, a background color, and an image may be used to construct an image of a button and the image of the button may be a graphical object.